package com.lubase.metadata.service;

import com.lubase.metadata.model.EMapType;
import com.lubase.metadata.model.EModelType;
import com.lubase.metadata.model.MapEntityRelationModel;
import com.lubase.metadata.model.MapLayoutModel;

import java.util.List;


/**
 * @author lubase
 * @date 2021/11/08
 * @description 描述
 */
public interface RelationMapService {
    /**
     * 获取数据库表关系图
     *
     * @param databaseId
     * @param modelType  1:业务模型 2：系统模型  0：全部模型
     * @return
     */
    MapEntityRelationModel getTableRelationMapOfDatabase(String databaseId, EModelType modelType);

    /**
     * 获取数据库表关系图
     *
     * @param tableId
     * @return
     */
    MapEntityRelationModel getTableRelationMapOfTable(String tableId);

    /**
     * 根据业务场景获取数据库表关系图
     *
     * @param sceneId
     * @return
     */
    MapEntityRelationModel getTableRelationMapOfScene(String sceneId);

    /***
     * 根据入湖申请获取数据库表关系图
     * @param applyId
     * @return
     */
    MapEntityRelationModel getTableRelationMapOfApply(String applyId);

    /**
     * 保存关联关系图
     *
     * @param businessId
     * @param mapType
     * @param relationMapList
     * @return
     */
    Integer setTableRelationMap(String businessId, EMapType mapType, List<MapLayoutModel> relationMapList);
}
